// 《围棋》作者版权所有。保留所有权利。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

package list

import (
	"go/build"
)

type Context struct {
	GOARCH        string   `json:",omitempty"` // 目标体系结构
	GOOS          string   `json:",omitempty"` // 目标操作系统
	GOROOT        string   `json:",omitempty"` // 进入根目录
	GOPATH        string   `json:",omitempty"` // 进入路径
	CgoEnabled    bool     `json:",omitempty"` // 是否可以使用cgo 
	UseAllFiles   bool     `json:",omitempty"` // 使用文件而不考虑+构建行，文件名
	Compiler      string   `json:",omitempty"` // 计算目标路径时要采用的编译器
	BuildTags     []string `json:",omitempty"` // 要在+构建行中匹配的构建约束
	ToolTags      []string `json:",omitempty"` // 特定于工具链的构建约束
	ReleaseTags   []string `json:",omitempty"` // 版本当前版本与
	InstallSuffix string   `json:",omitempty"` // 在安装目录的名称中使用的后缀
}

func newContext(c *build.Context) *Context {
	return &Context{
		GOARCH:        c.GOARCH,
		GOOS:          c.GOOS,
		GOROOT:        c.GOROOT,
		GOPATH:        c.GOPATH,
		CgoEnabled:    c.CgoEnabled,
		UseAllFiles:   c.UseAllFiles,
		Compiler:      c.Compiler,
		BuildTags:     c.BuildTags,
		ToolTags:      c.ToolTags,
		ReleaseTags:   c.ReleaseTags,
		InstallSuffix: c.InstallSuffix,
	}
}
